#ifndef __CSTATE_H__
#define __CSTATE_H__
#include "..\Content\CGameObject.h"
#include <vector>
#include <algorithm>
#include "..\Content\CHitBox.h"
#include "..\Content\CHitSphere.h"
#include "..\..\YGDPhysics\Includes\IForceRegister.h"
#include "..\..\YGDEngine\Includes\IMesh.h"
#include "..\..\YGDEngine\YGDEngine.h"
#include "..\..\YGDEngine\Includes\IWindow.h"

namespace Logic
{
class CState
{
public:
  CState();
  ~CState();

  void init();
  void updateAllObjects(float alpha);
  void addGameObject(Content::CGameObject* pObj);
  void removeGameObject(Content::CGameObject* pObj);
  void handleInput(float dT);
  IEntity* pForkEntity;


private:
  std::vector<Content::CGameObject*> objects;
  Content::CHitBox* pHitBox1;
  Content::CHitSphere* pHitSphere1;
  IMesh* pMesh;
  IMesh* pWorldMesh;
  IInput* pInput;
};

}
#endif